#!/usr/bin/perl

use lib "./../cgi-bin/";

use config;
use SHELL::Command;

my $comm = SHELL::Command->new();

#путь к каталогу с архитекурами
( my $PATH ) = $DATA{'RELEASE_TMPL'} =~ /(.*)ARCH/;

# генерация хеша хешов
# архитектура => проекты => версии
my %ArchToProject;
foreach my $ARCH ( @{ $DATA{'ARCH'} } ) {
	$project = {};
	$ArchToProject{$ARCH} = $project;

	# получаем из шаблона путь к проектам
	($PROJECT_PATH) = $DATA{'RELEASE_TMPL'} =~ /(.*)PROJECT/;

	# подставляем конкретную архитекуру
	$PROJECT_PATH =~ s/ARCH/$ARCH/;
	foreach $project_name ( $comm->ls($PROJECT_PATH) ) {
		$VERSION_PATH = $DATA{'RELEASE_TMPL_PATH'};
		$VERSION_PATH =~ s/ARCH/$ARCH/;
		$VERSION_PATH =~ s/PROJECT/$project_name/g;
		$project->{$project_name} = [ $comm->ls($VERSION_PATH) ];
	}
}
my $JAVA_SCIPT_ARRAY = '';

# вывод дерева релизов
# и ненеразия массива JavaScript
for my $ARCH ( keys %ArchToProject ) {

	print "$ARCH: \n";
	$JAVA_SCIPT_ARRAY .= '"';
	for $project ( keys %{ $ArchToProject{$ARCH} } ) {
		$JAVA_SCIPT_ARRAY .= "$project,";
		print "\t $project: ";
		foreach $el ( @{ $ArchToProject{$ARCH}{$project} } ) {
			print "$el; ";
		}
		print "\n";
	}
	chop $JAVA_SCIPT_ARRAY;   # удаление поледней запятой
	$JAVA_SCIPT_ARRAY .= '",' . "\n";
	print "\n";
}
chomp $JAVA_SCIPT_ARRAY;       # символа "\n"
chop $JAVA_SCIPT_ARRAY;       # удаление поледней запятой


$JSCRIPT = <<END;
<script type="text/javascript">
var aProject = new Array(
$JAVA_SCIPT_ARRAY
);


// ф-ция, возвращающая массив проектов по заданной архитектуре
function getProjectByArch(index){
    var sProjectValues = aProject[index];
    return sProjectValues .split(","); 
}

// главная ф-ция, выводящая динамически список проектов
function MkProjectValues(index){
    var aCurrProjectValues = getProjectByArch(index);
    var nCurrProjecCnt = aCurrProjectValues.length;
    var oProjectList = document.forms["select"].elements["project"];
    var oProjectListOptionsCnt = oProjectList.options.length;
    oProjectList.length = 0; // удаляем все элементы из списка
    for (i = 0; i < nCurrProjecCnt; i++){
        if (document.createElement){
        	
            var newProjectListOption = document.createElement("OPTION");
            newProjectListOption.text = aCurrProjectValues[i];
            newProjectListOption.value = aCurrProjectValues[i];
			oProjectList.add(newProjectListOption, null);
        }
    }
}

MkProjectValues(document.forms["select"].elements["project"].selectedIndex);
</script>
END
print $JSCRIPT;